The present invention relates to the field of computer networks, and in particular to workflow systems and methods used in computer networks to control, access, process, track, and modify documents.
A workflow system automates processing of documents in computer networks by defining the sequence of users with access to documents transmitted in the computer network. One application suitable for workflow is business travel reimbursement, having the following steps: (1) the traveler sends a request for reimbursement to a manager; (2) the manager reviews it; and (3) the manager either sends the approved request to accounting for payment or returns the request to the traveler for clarification. During the process, the users of the workflow system may want certain information. The manager may want information from the traveler before approval, accounting may want the total number of requests submitted by the traveler within the year, and the traveler may want to know where the request is in the process, especially if it is delayed.
A route describes the step-by-step sequence of a given, workflow. The route may have a linear sequence and/or complex conditional branching. The latter type may require databases to store the independent parallel routes which later join to form a linear route. Simple workflow may require only an e-mail system to emulate paper-based procedures using mail and routing slips. As shown in FIG. 1a. a database workflow system stores the document, the route, and the sequence of access in data tables. Because the information is stored in the memory of the database system, database systems can provide for complex routes, supply information on the document, and alert users to process delays. Many databases also have failure detection and recovery mechanisms to assure reliability. However, databases require that users employ specific programs to process the workflow, and remain connected to the database for the entire session, which can result in expensive long distance phone calls when users are remote from the database. Because the users may participate in many workflow processes, database workflow systems may require a number of specific programs to be loaded in their PCs and require access to a number of databases. This may unnecessarily confuse users who must then identify the programs and the databases associated with a given workflow.
As shown in FIG. 1b, an e-mail workflow system transmits the document and the route in the e-mail. This has the advantage that users only need e-mail programs such as Lotus cc:Mail or Microsoft Exchange. Further, a remote user such as a traveling manager can approve documents as remote e-mail. However, since key information about the document is in the e-mail, the workflow process fails if the e-mail is lost. Because there is no central memory, even basic information such as location of a document may be lost. In addition, since there is no access to global information, the e-mail workflow routes are limited to simple linear routes. Further, because the route is part of the e-mail and coded for a particular system, each PC must have a specific program to send the e-mail to the next user. So while users may have the advantage of easy access in e-mail workflow systems, they must have specific programs loaded in their PC before participating in the workflow process. This makes ad hoc creation of a workflow route impracticable, because the participants must have prepared in advance by loading all of the appropriate software in their PCs. As with the database workflow system in which many users participate in the workflow, an e-mail workflow requires many workflow programs be loaded in each PC, lacks capability to perform complex routes and track documents. Thus, the overall benefit of using current e-mail workflow systems is limited.
It would be desirable if workflow systems existed which could perform complex database functions, provide the easy accessibility of e-mail, avoid the need for specific programs in each PC, and insulate the user from the need to identify the pertinent server for a given workflow process.